package com.zj.blog.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Value;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data   //lombok用于简化get、set等
@EqualsAndHashCode(callSuper = false)   //创造equls和hashcode方法，false表示不会涉及父类的属性，true表示会对父类属性一样生成该两个方法
@Accessors(chain = true)             //使用链式法则，使  属性对应的set方法返回对应的对象而不是void，从而可以使用链式编写
@TableName("sys_article")        //mybatisplus 确定该类对应的在mysql中的   表
@ApiModel(value = "Article 对象", description = "资源表")                       //swagger接口文档，value类，description 是对该类的描述
public class Article implements Serializable {
    private static final long serialVersionUID=1L;   //序列化

    @TableId(value = "ar_id",type = IdType.AUTO)   //设置该字段为主键，对应mysql中的ar_id字段，且类型为自增。
    private Integer arId;


    @ApiModelProperty("类别id")
    private Integer arttypeId;

    @ApiModelProperty("标题")
    private String title;

    @ApiModelProperty("图片地址")
    private String litipic;

    @ApiModelProperty("文章内容")
    private String context;


    @ApiModelProperty("文章描述")
    private String description;

    @ApiModelProperty("创建人id")
    private Integer createuserid;

    @ApiModelProperty("创建时间")
    private LocalDateTime createtime;

    @ApiModelProperty("修改时间")
    private LocalDateTime updatetime;

    @ApiModelProperty("评论数量")
    private Integer commentcount;

    @ApiModelProperty("是否允许评论")
    private Integer commentstate;

    @ApiModelProperty("点击量")
    private Integer clickcount;

    @ApiModelProperty("下载地址")
    private String downloadurl;

    @ApiModelProperty("下载密码")
    private String downloadpassword;

    @ApiModelProperty("文章状态  1.通过   2.不通过   3.驳回")
    private Integer state;

    @ApiModelProperty("是否置顶")
    private Integer topstate;

    @ApiModelProperty("是否免费")
    private Integer isFree;

    @ApiModelProperty("下载积分")
    private Integer jf;

    @ApiModelProperty("是否热门")
    private Integer isHot;

    @ApiModelProperty("驳回内容")
    private String reason;

    @ApiModelProperty("审核时间")
    private LocalDateTime checkDatetime;

    @ApiModelProperty("1是文章  2是资源下载  3是资源添加文章")
    private Integer type;

    @TableField(exist = false)
    @ApiModelProperty("资源栏目")
    private Integer arttype;

    @TableField(exist = false)
    @ApiModelProperty("文章用户")
    private User user;

    @TableField(exist = false)     //value 该成员在数据库中对应的列名（如果我们没有开启驼峰映射，我们就可以通过这个来指定列名），
    //  exist表示该成员是否属于数据库（如果某个字段在数据库中不存在，我们必须通过exist来false才行，不然会报错）
    @ApiModelProperty("文章标签")
    private String[] tag;

    @TableField(exist = false)
    private Integer pingluncount;




}































